package com.mmall.dao;

import com.mmall.pojo.User;
import org.apache.ibatis.annotations.Param;

public interface UserMapper {

    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);

    //手动创建按姓名查询验证是否存在该用户的方法
    int checkUsername(String username);

    //按姓名密码查询核对用户
    //多参数时需要通过@Param来指定参数映射到xml中的名字
    User selectLogin(@Param("username") String username, @Param("password") String password);

    //手写全字段指定查询
    User selectAll(User record);

    //注册用户时,判断邮箱/电话是否被使用
    int checkEmail(String email);

    //更新个人信息时,排除自身数据查询
    int checkEmailWithoutId(@Param("email") String email, @Param("userId") Integer userId);

    int checkPhone(String phone);

    //更新个人信息时,排除自身查询手机号码
    int checkPhoneWithoutId(@Param("phone") String phone, @Param("userId") Integer userId);

    String selectQuestionByUsername(String username);

    int checkAnswer(@Param("username") String username, @Param("question") String question, @Param("answer") String answer);

    int updatePasswordByUsername(@Param("username") String username, @Param("passwordNew") String passwordNew);

    int checkPassword(@Param("password") String password, @Param("userId") int userId);

    User getInfo(int userId);
}